home *** CD-ROM | disk | FTP | other *** search
-
- Listing 1
-
- /* a few defines that make this more readable */
- #define VRES config.mode.disp_vres
- #define HRES config.mode.disp_hres
- #define CHAR_WIDE font.charwide
- #define CHAR_HIGH font.charhigh
-
- integer opengraphics()
- {
- integer ret_code;
- integer status = 1;
- integer screens;
-
- screens = scrnparams[0];
-
- /* init the TIGA interface */
- if (!set_videomode(TIGA, INIT_GLOBALS | CLR_SCREEN))
- {
- /* tell them we just couldn't init the card */
- cputs("failed in set_videomode()\n\r");
- status = 13;
- }
- else
- if ((ret_code = install_primitives()) < 0)
- {
- cputs("failed in install_primitives()\n\r");
- status = 12;
- }
-
- if (status == 1)
- {
- /* init global variables */
- get_config(&config);
- get_fontinfo(0, &font);
- dispcolors = (integer)config.mode.palet_size - 1;
- xdots = HRES - 1;
- ydots = VRES - 1;
- maxgrrow = VRES / CHAR_HIGH;
- maxgrcol = HRES / CHAR_WIDE;
- gdrawmode = REPLACE;
-
- set_textattr( "%1a", 0, 0 );
-
- /* set up the viewport struct so VCAD knows how big
- this card is... */
- if (screens == 1)
- {
- sharedscreen = TRUE;
- /* Setup viewport related parameters */
- viewport.vpxl = 10 * CHAR_WIDE;
- viewport.vpxr = xdots;
- viewport.vpyb = 4 * CHAR_HIGH;
- viewport.vpyt = ydots;
- /* Viewport extremes in character (row,col)
- coordinates */
- viewport.vtxl = 10;
- viewport.vtxr = maxgrcol;
- viewport.vtyb = maxgrrow - 4;
- viewport.vtyt = 0;
- }
- else
- { /* 2 screen */
- sharedscreen = FALSE;
- /* Setup viewport related parameters */
- viewport.vpxl = 0;
- viewport.vpxr = xdots;
- viewport.vpyb = 0;
- viewport.vpyt = ydots;
- /* Viewport extremes in character (row,col)
- coordinates */
- viewport.vtxl = 0;
- viewport.vtxr = maxgrcol;
- viewport.vtyb = maxgrrow;
- viewport.vtyt = 0;
- }
-
- /* set up the clipping rect */
- set_clip_rect(
- viewport.vpxr - viewport.vpxl,
- viewport.vpyt - viewport.vpyb,
- viewport.vpxl,
- ydots-viewport.vpyt);
-
- clear_screen(0);
- if (sharedscreen) dispstate = GRAPHICS;
- else dispstate = TEXT;
-
- graphwasinit = TRUE;
- }
- return((integer) (status));
- } /* opengraphics */
-